/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.camachosanchez.bean;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Zully
 */
@Entity
@Table(name = "inspeccion_equipo")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "InspeccionEquipo.findAll", query = "SELECT i FROM InspeccionEquipo i"),
    @NamedQuery(name = "InspeccionEquipo.findById", query = "SELECT i FROM InspeccionEquipo i WHERE i.id = :id"),
    @NamedQuery(name = "InspeccionEquipo.findByFechaHoraEntrada", query = "SELECT i FROM InspeccionEquipo i WHERE i.fechaHoraEntrada = :fechaHoraEntrada"),
    @NamedQuery(name = "InspeccionEquipo.findByFechaHoraSalida", query = "SELECT i FROM InspeccionEquipo i WHERE i.fechaHoraSalida = :fechaHoraSalida"),
    @NamedQuery(name = "InspeccionEquipo.findByClienteEntrada", query = "SELECT i FROM InspeccionEquipo i WHERE i.clienteEntrada = :clienteEntrada"),
    @NamedQuery(name = "InspeccionEquipo.findByClienteSalida", query = "SELECT i FROM InspeccionEquipo i WHERE i.clienteSalida = :clienteSalida"),
    @NamedQuery(name = "InspeccionEquipo.findByTransportistaEntrada", query = "SELECT i FROM InspeccionEquipo i WHERE i.transportistaEntrada = :transportistaEntrada"),
    @NamedQuery(name = "InspeccionEquipo.findByTransportistaSalida", query = "SELECT i FROM InspeccionEquipo i WHERE i.transportistaSalida = :transportistaSalida"),
    @NamedQuery(name = "InspeccionEquipo.findByOperable", query = "SELECT i FROM InspeccionEquipo i WHERE i.operable = :operable"),
    @NamedQuery(name = "InspeccionEquipo.findByReqMantenimiento", query = "SELECT i FROM InspeccionEquipo i WHERE i.reqMantenimiento = :reqMantenimiento"),
    @NamedQuery(name = "InspeccionEquipo.findByReqPreparacion", query = "SELECT i FROM InspeccionEquipo i WHERE i.reqPreparacion = :reqPreparacion"),
    @NamedQuery(name = "InspeccionEquipo.findByDaniado", query = "SELECT i FROM InspeccionEquipo i WHERE i.daniado = :daniado"),
    @NamedQuery(name = "InspeccionEquipo.findByEstadoTransaccion", query = "SELECT i FROM InspeccionEquipo i WHERE i.estadoTransaccion = :estadoTransaccion"),
    @NamedQuery(name = "InspeccionEquipo.findByFechaInsercionActualizacion", query = "SELECT i FROM InspeccionEquipo i WHERE i.fechaInsercionActualizacion = :fechaInsercionActualizacion"),
    @NamedQuery(name = "InspeccionEquipo.findByAnulado", query = "SELECT i FROM InspeccionEquipo i WHERE i.anulado = :anulado")})
public class InspeccionEquipo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;
    @Column(name = "fecha_hora_entrada")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaHoraEntrada;
    @Basic(optional = false)
    @Column(name = "fecha_hora_salida")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaHoraSalida;
    @Column(name = "cliente_entrada")
    private String clienteEntrada;
    @Column(name = "cliente_salida")
    private String clienteSalida;
    @Column(name = "transportista_entrada")
    private String transportistaEntrada;
    @Column(name = "transportista_salida")
    private String transportistaSalida;
    @Column(name = "operable")
    private Boolean operable;
    @Column(name = "req_mantenimiento")
    private Boolean reqMantenimiento;
    @Column(name = "req_preparacion")
    private Boolean reqPreparacion;
    @Column(name = "daniado")
    private Boolean daniado;
    @Basic(optional = false)
    @Column(name = "estado_transaccion")
    private boolean estadoTransaccion;
    @Basic(optional = false)
    @Column(name = "fecha_insercion_actualizacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaInsercionActualizacion;
    @Basic(optional = false)
    @Column(name = "anulado")
    private boolean anulado;
    @JoinColumn(name = "id_vehiculo_salida", referencedColumnName = "id")
    @ManyToOne(fetch = FetchType.LAZY)
    private Vehiculos idVehiculoSalida;
    @JoinColumn(name = "id_vehiculo_entrada", referencedColumnName = "id")
    @ManyToOne(fetch = FetchType.LAZY)
    private Vehiculos idVehiculoEntrada;
    @JoinColumn(name = "id_piloto_salida", referencedColumnName = "id")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Pilotos idPilotoSalida;
    @JoinColumn(name = "id_piloto_entrada", referencedColumnName = "id")
    @ManyToOne(fetch = FetchType.LAZY)
    private Pilotos idPilotoEntrada;
    @JoinColumn(name = "id_usuario_salida", referencedColumnName = "id")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Usuarios idUsuarioSalida;
    @JoinColumn(name = "id_usuario_entrada", referencedColumnName = "id")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Usuarios idUsuarioEntrada;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idInspeccionEquipo", fetch = FetchType.LAZY)
    private List<DetalleInspeccionEquipo> detalleInspeccionEquipoList;

    public InspeccionEquipo() {
    }

    public InspeccionEquipo(Integer id) {
        this.id = id;
    }

    public InspeccionEquipo(Integer id, Date fechaHoraSalida, boolean estadoTransaccion, Date fechaInsercionActualizacion) {
        this.id = id;
        this.fechaHoraSalida = fechaHoraSalida;
        this.estadoTransaccion = estadoTransaccion;
        this.fechaInsercionActualizacion = fechaInsercionActualizacion;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Date getFechaHoraEntrada() {
        return fechaHoraEntrada;
    }

    public void setFechaHoraEntrada(Date fechaHoraEntrada) {
        this.fechaHoraEntrada = fechaHoraEntrada;
    }

    public Date getFechaHoraSalida() {
        return fechaHoraSalida;
    }

    public void setFechaHoraSalida(Date fechaHoraSalida) {
        this.fechaHoraSalida = fechaHoraSalida;
    }

    public String getClienteEntrada() {
        return clienteEntrada;
    }

    public void setClienteEntrada(String clienteEntrada) {
        this.clienteEntrada = clienteEntrada;
    }

    public String getClienteSalida() {
        return clienteSalida;
    }

    public void setClienteSalida(String clienteSalida) {
        this.clienteSalida = clienteSalida;
    }

    public String getTransportistaEntrada() {
        return transportistaEntrada;
    }

    public void setTransportistaEntrada(String transportistaEntrada) {
        this.transportistaEntrada = transportistaEntrada;
    }

    public String getTransportistaSalida() {
        return transportistaSalida;
    }

    public void setTransportistaSalida(String transportistaSalida) {
        this.transportistaSalida = transportistaSalida;
    }

    public Boolean getOperable() {
        return operable;
    }

    public void setOperable(Boolean operable) {
        this.operable = operable;
    }

    public Boolean getReqMantenimiento() {
        return reqMantenimiento;
    }

    public void setReqMantenimiento(Boolean reqMantenimiento) {
        this.reqMantenimiento = reqMantenimiento;
    }

    public Boolean getReqPreparacion() {
        return reqPreparacion;
    }

    public void setReqPreparacion(Boolean reqPreparacion) {
        this.reqPreparacion = reqPreparacion;
    }

    public Boolean getDaniado() {
        return daniado;
    }

    public void setDaniado(Boolean daniado) {
        this.daniado = daniado;
    }

    public boolean getEstadoTransaccion() {
        return estadoTransaccion;
    }

    public void setEstadoTransaccion(boolean estadoTransaccion) {
        this.estadoTransaccion = estadoTransaccion;
    }

    public Date getFechaInsercionActualizacion() {
        return fechaInsercionActualizacion;
    }

    public void setFechaInsercionActualizacion(Date fechaInsercionActualizacion) {
        this.fechaInsercionActualizacion = fechaInsercionActualizacion;
    }
    
    public boolean getAnulado() {
        return anulado;
    }

    public void setAnulado(boolean anulado) {
        this.anulado = anulado;
    }

    public Vehiculos getIdVehiculoSalida() {
        return idVehiculoSalida;
    }

    public void setIdVehiculoSalida(Vehiculos idVehiculoSalida) {
        this.idVehiculoSalida = idVehiculoSalida;
    }

    public Vehiculos getIdVehiculoEntrada() {
        return idVehiculoEntrada;
    }

    public void setIdVehiculoEntrada(Vehiculos idVehiculoEntrada) {
        this.idVehiculoEntrada = idVehiculoEntrada;
    }

    public Pilotos getIdPilotoSalida() {
        return idPilotoSalida;
    }

    public void setIdPilotoSalida(Pilotos idPilotoSalida) {
        this.idPilotoSalida = idPilotoSalida;
    }

    public Pilotos getIdPilotoEntrada() {
        return idPilotoEntrada;
    }

    public void setIdPilotoEntrada(Pilotos idPilotoEntrada) {
        this.idPilotoEntrada = idPilotoEntrada;
    }

    public Usuarios getIdUsuarioSalida() {
        return idUsuarioSalida;
    }

    public void setIdUsuarioSalida(Usuarios idUsuarioSalida) {
        this.idUsuarioSalida = idUsuarioSalida;
    }

    public Usuarios getIdUsuarioEntrada() {
        return idUsuarioEntrada;
    }

    public void setIdUsuarioEntrada(Usuarios idUsuarioEntrada) {
        this.idUsuarioEntrada = idUsuarioEntrada;
    }

    @XmlTransient
    public List<DetalleInspeccionEquipo> getDetalleInspeccionEquipoList() {
        return detalleInspeccionEquipoList;
    }

    public void setDetalleInspeccionEquipoList(List<DetalleInspeccionEquipo> detalleInspeccionEquipoList) {
        this.detalleInspeccionEquipoList = detalleInspeccionEquipoList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof InspeccionEquipo)) {
            return false;
        }
        InspeccionEquipo other = (InspeccionEquipo) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.camachosanchez.bean.InspeccionEquipo[ id=" + id + " ]";
    }
    
}
